home *** CD-ROM | disk | FTP | other *** search
- package com.ibm.xml.internal;
-
- import com.ibm.xml.framework.ChunkyByteArray;
- import com.ibm.xml.framework.ParserState;
- import com.ibm.xml.framework.XMLDeclRecognizer;
- import com.ibm.xml.framework.XMLReader;
- import java.io.InputStreamReader;
- import java.io.UnsupportedEncodingException;
- import org.xml.sax.InputSource;
-
- public class UTF8Recognizer extends XMLDeclRecognizer {
- public XMLReader recognize(ParserState var1, InputSource var2, ChunkyByteArray var3, boolean var4) throws Exception {
- Object var5 = null;
- byte var6 = var3.byteAt(0);
- if (var6 == 60) {
- byte var7 = var3.byteAt(1);
- if (var7 == 63 && var3.byteAt(2) == 120 && var3.byteAt(3) == 109 && var3.byteAt(4) == 108) {
- byte var8 = var3.byteAt(5);
- if (var8 == 32 || var8 == 9 || var8 == 10 || var8 == 13) {
- int var9 = ((XMLDeclRecognizer)this).prescanXMLDeclOrTextDecl(new XMLDeclReader(var3, var1), var4);
- if (var9 != -1) {
- String var10 = var1.getStringPool().orphanString(var9).toUpperCase();
- if ("ISO-10646-UCS-2".equals(var10)) {
- throw new UnsupportedEncodingException(var10);
- }
-
- if ("ISO-10646-UCS-4".equals(var10)) {
- throw new UnsupportedEncodingException(var10);
- }
-
- if ("UTF-16".equals(var10)) {
- throw new UnsupportedEncodingException(var10);
- }
-
- String var11 = MIME2Java.convert(var10);
- if (var11 == null) {
- if (!var1.getAllowJavaEncodingName()) {
- throw new UnsupportedEncodingException(var10);
- }
-
- var11 = var10;
- }
-
- try {
- var3.rewind();
- if (!"UTF-8".equalsIgnoreCase(var11) && !"UTF8".equalsIgnoreCase(var11)) {
- var5 = new CharReader(var1, var2.getPublicId(), var2.getSystemId(), new InputStreamReader(var3, var11));
- } else {
- var5 = new UTF8CharReader(var1, var2.getPublicId(), var2.getSystemId(), var3);
- }
- } catch (UnsupportedEncodingException var13) {
- throw var13;
- } catch (Exception var14) {
- ((Throwable)var14).printStackTrace();
- }
- } else {
- var3.rewind();
- var5 = new UTF8CharReader(var1, var2.getPublicId(), var2.getSystemId(), var3);
- }
- }
- }
- }
-
- return (XMLReader)var5;
- }
- }
-